package com.bjpowernode.javase.annotation7;

import java.lang.reflect.Field;

public class Test {
    public static void main(String[] args) throws Exception {
        Class userClass = Class.forName("com.bjpowernode.javase.annotation7.User");
        //判断类上有没有Id注解
        if(userClass.isAnnotationPresent(Id.class)){
            //当一个类上有Id注解的时候，需要类中有int id属性，
            // 没有就报异常
            Field[] fields = userClass.getDeclaredFields();
            boolean isRight = false;//默认标记
            for(Field field : fields){
                /*System.out.println(属性的名字："+field.getName());
                System.out.println("属性的类型：""+field.getType().getSimpleName());*/
                if("id".equals(field.getName())&&
                        "int".equals(field.getType().getSimpleName())){
                    isRight = true;
                    break;
                }
            }
            if(!isRight){
                throw new HasNotPropertiesException("被Id注解标注的类中比" +
                        "必须有一个int类的id属性！");
            }
        }
    }
}
